package com.zdkj.subway.stm.util;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializeFilter;
import java.util.List;

/**
 * 统一处理json
 *
 * @author lichao 2017年7月25日
 */
public class JsonUtil {

    /**
     * 将对象转换成json字符串
     *
     * @param obj 内容
     * @return
     */
    public static String toJson(Object obj) {

        return JSON.toJSONString(obj);
    }

    /**
     * 将对象转换成json字符串,并将null值装换成空字符串
     *
     * @param obj 内容
     * @return
     */
    /*public static String toJsonSerializerNull(Object obj) {

        return JSON.toJSONString(obj, new Null2EmptyValueFilter());
    }*/

    /**
     * 将对象转换成json字符串,并将null值装换成空字符串,并将key转为大写或小写
     *
     * @param obj     内容
     * @param isLower 是否是小写，true为小写，false为大写
     * @return
     */
    /*public static String toJsonKeyLowerUpperSerializerNull(Object obj, boolean isLower) {

        return JSON.toJSONString(obj, new SerializeFilter[]{new Null2EmptyValueFilter(), new LowerUpperKeyFilter(isLower)});
    }*/

    /**
     * 将对象转换成json字符串
     *
     * @param obj     内容
     * @param filters 过滤器
     * @return
     */
    public static String toJson(Object obj, SerializeFilter... filters) {

        return JSON.toJSONString(obj, filters);
    }

    /**
     * 将对象转换成json字符串,并将null值装换成空字符串,进行过滤字段
     *
     * @param obj
     * @return
     */
    /*public static String toJsonSkipFileds(Object obj, String... fileds) {

        return JSON.toJSONString(obj,
                new SerializeFilter[]{new PropertiesFilter(fileds), new Null2EmptyValueFilter()});
    }*/

    /**
     * 将json字符串转成对象
     *
     * @param json
     * @return
     */
    public static Object fromJson(String json) {

        return JSON.parse(json);
    }

    /**
     * 将json字符串转成对象
     *
     * @param json
     * @return
     */
    public static <T> T fromJson(String json, Class<T> clazz) {

        return JSON.parseObject(json, clazz);
    }

    /**
     * 将json字符串转成集合
     *
     * @param json
     * @return
     */
    public static <T> List<T> fromJsonArray(String json, Class<T> clazz) {

        return JSON.parseArray(json, clazz);
    }

}



